const errorTypes = require('../constants/error-types');
const service = require('../service/user.service');
const md5password = require('../utils/password-handle');

const verifyUser = async (ctx, next) => {
    //获取用户名和密码 
    const { name, password } = ctx.request.body;

    //越界判断
    if (!name || !password || name === '' || password === '') {
        const error = new Error(errorTypes.NAME_OR_PASSWORD_IS_REQUIRED);
        return ctx.app.emit('error', error, ctx);
    }

    //判断用户已被注册过
    const result = await service.getUserByName(name);
    if (result.length) {
        const error = new Error(errorTypes.USER_ALREADY_EXISTS);
        return ctx.app.emit('error', error, ctx);
    }


    await next();
};

const handlePassword = async (ctx, next) => {
    const { password } = ctx.request.body;
    ctx.request.body.password = md5password(password);

    await next();
}

module.exports = {
    verifyUser,
    handlePassword
};